package com.jugheadzhou.core.message.rabbitmq.producer.meta;

/**
 * @author jugheadzhou
 * @date 2021-12-02
 */
public interface RabbitMeta {

    /**
     * 获取交换机的名称
     *
     * @return
     */
    String getExchange();

    /**
     * 获取交换机的类型
     *
     * @see org.springframework.amqp.core.ExchangeTypes
     * @return
     */
    String getExchangeType();

    /**
     * 获取队列名称
     *
     * @return
     */
    String getQueueName();

    /**
     * 获取路由键
     *
     * 1. 扇形交换机的路由键不会生效，任何情况下绑定的队列都会收到交换机来的消息
     * 2. 直连交换机的路由键是一一对应，指定的路由键完全匹配的所绑定的队列才会收到消息
     * 3. 主题交换机的路由键可以使用通配符*或者#，指定的路由键在通配符匹配的所绑定的队列都会收到消息
     *
     * @return
     */
    String getRoutingKey();
}
